import os

import pymongo
from dotenv import load_dotenv

load_dotenv()

def get_db(database):
    """
    连接数据库
    :param database: 库名
    :return:
    """
    host = os.getenv('MONGO_HOST')
    port = os.getenv('MONGO_PORT')
    conn = pymongo.MongoClient(host=port, port=host)
    db = conn[database]
    return db, conn

def add_one(db, table, data):
    """
    添加一条数据
    :param db: 数据库连接
    :param table: 表名
    :param data: 数据
    :return: 返回结果
    """
    result = db[table].insert_one(data)
    return result

def add_many(db, table, data_list):
    """
    添加多条数据
    :param db: 数据库连接
    :param table: 表名
    :param data_list: 多条数据
    :return: 返回结果
    """
    result = db[table].insert_many(data_list)
    return result

def upd(db, table, condition, data):
    """
    修改一条数据
    :param db: 数据库连接
    :param table: 表名
    :param condition: 条件
    :param data: 新数据
    :return: 返回结果
    """
    result = db[table].update_many(condition, {'$set':data})
    return result

def delete(db, table, condition):
    """
    删除
    :param db: 数据库连接
    :param table: 表名
    :param condition: 删除条件
    :return: 返回结果
    """
    result = db[table].delete_many(condition)
    return result

def query(db, table, condition=''):
    """
    查询数据
    :param db: 数据库连接
    :param table: 表名
    :param condition: 查询条件
    :return: 返回结果
    """
    result = db[table].find(condition)
    return result


if __name__ == '__main__':
    db, conn = get_db("WatchRecommendationSystem")
    add_one(db, "watch_list", {'uuid1': 1, 't': 1, 'l': 1, 'p': 1, 'f': 1, 'r': 1})
    pass
